﻿using System;
using System.Runtime.InteropServices;

namespace SilverlightViewport.Common.Interop
{
    [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), 
     Guid("00000116-0000-0000-C000-000000000046")]
    public interface IOleInPlaceFrame : IOleInPlaceUIWindow
    {
        [PreserveSig]
        new int GetWindow(out IntPtr phwnd);
        [PreserveSig]
        new int ContextSensitiveHelp([In] int fEnterMode);
        [PreserveSig]
        new int GetBorder([Out, MarshalAs(UnmanagedType.LPArray)] RECT[] lprectBorder);
        [PreserveSig]
        new int RequestBorderSpace([In, MarshalAs(UnmanagedType.LPArray)] RECT[] pborderwidths);
        [PreserveSig]
        new int SetBorderSpace([In, MarshalAs(UnmanagedType.LPArray)] RECT[] pborderwidths);
        [PreserveSig]
        new int SetActiveObject([In, MarshalAs(UnmanagedType.Interface)] IOleInPlaceActiveObject pActiveObject, [In, MarshalAs(UnmanagedType.LPWStr)] string pszObjName);
        [PreserveSig]
        int InsertMenus([In] IntPtr hmenuShared, [In, Out, MarshalAs(UnmanagedType.LPArray)] OLEMENUGROUPWIDTHS[] lpMenuWidths);
        [PreserveSig]
        int SetMenu([In] IntPtr hmenuShared, [In] IntPtr HOLEMENU, [In] IntPtr hwndActiveObject);
        [PreserveSig]
        int RemoveMenus([In] IntPtr hmenuShared);
        [PreserveSig]
        int SetStatusText([In, MarshalAs(UnmanagedType.LPWStr)] string pszStatusText);
        [PreserveSig]
        int EnableModeless([In] int fEnable);
        [PreserveSig]
        int TranslateAccelerator([In, MarshalAs(UnmanagedType.LPArray)] MSG[] lpmsg, [In] ushort wID);
    }
}
